package com.sun.jdk.date.jdk8before;

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
import java.util.Date;

public class JavaUtilDateCalendarDemo {

    /**
     * 需求：程序员小李出生于1995年12月16日，计算在当前这个时间他已经出生了多少天。
     * 思路：
     * 1. 初始化Date对象，无参构造函数（无参构造函数默认代表的就是当前时间）
     * 2. 获取当前时间距离1970年1月1日过了多少毫秒
     * 3. 初始化Calendar对象并设时间为1995年12月16日，并将Calendar对象转换为Date对象，再转换为1995年12月16日距离1970年1月1日过了多少毫秒
     * 4. 将两个毫秒数做相减操作，然后将毫秒数转换成天数。
     *
     */
    // 使用JDK8以前的时间日期API计算方法
    private static void test1(){
        Date now = new Date();
        long time = now.getTime();

        Calendar calendar = Calendar.getInstance();
        calendar.set(1995, 11, 16);
        long time1 = calendar.getTime().getTime();

        long days = (time-time1)/(1000*60*60*24);

        System.out.println("days = " + days);
    }

    // 使用JDK8以后的时间日期API
    private static void test2(){
        long between = ChronoUnit.DAYS.between(LocalDate.of(1995, 12, 16), LocalDate.now());
        System.out.println(between);
    }

    public static void main(String[] args) {
        test1();
        test2();
    }
}
